import * as API from '../api/request_api.js'
const $testapi = require('../api/api.js').API;


var LightSet = API.Payload

Page({
  data: {
    roomID:null, 
    roomName:null,
    roomDevice:null,
    ctrlLightSwitch: "开",
    type_switch: "开",
    upLightValue:1,
    upColorValue:50,
    sty:1,
    score: 'rgb(61, 194, 94)', 
  },
  /**
   * 生命周期函数--监听页面加载
   */ 
  onLoad: function (options) {
    var that = this
    wx.request({
      url: API.myURL_getDevice_get, 
      method:'GET',
      header: API.header,
      success (res) {   
        console.log(res.data)
        LightSet.DeviceSwitchState = res.data[0].Payload.DeviceSwitchState
        that.setData({
          deviceID: options.deviceID,
          deviceOnline: options.deviceOnline,
          ctrlLightSwitch:options.ctrlLightSwitch,
          upLightValue : res.data[0].Payload.Luminance,
          upColorValue : res.data[0].Payload.Color,
        })
        if(res.data[0].Payload.DeviceSwitchState == 1) {
          console.log("打开开关")
          LightSet.DeviceSwitchState = 0
          that.setData({
            ctrlLightSwitch:"开",
            sty: 1,
            score: 'rgb(61, 194, 94)'
          });
        }else{
          console.log("关闭开关")
          LightSet.DeviceSwitchState = 1
          that.setData({
            ctrlLightSwitch:"关",
            sty: 0,
            score: 'rgb(193, 207, 198)'
          });
        }
      },
      fail :(err) => {
        API.ShowToast("服务器未连接", 2000, "error")
        console.log('request'+err)
      },
    })
    // 刷新显示内容
    // 调用接口获取openid
  },
  
  /*
  **作者：田小呱
  **时间：2022.11
  **概述：直接控制灯光开关的函数，由前端界面的灯光开关按钮调用到此。负责开关灯光
  */ 
  ctrlLight : function(event){
    let that = this;
    wx.request({
      url: API.myURL_setDevice_post, 
      method:'POST', // 请求方式POST
      data: {
        DataType: API.DATATYPE.type_Switch,
        Topic   :API.Topic, //由用户设置的账号密码
        Payload : LightSet, //负载 要发送的具体数据内容
      },
      header: API.header,
      success (res) {
        console.log(res.data)
        if(res.data.DeviceSwitchState == 1) {
          console.log("打开开关")
          LightSet.DeviceSwitchState = 0
          that.setData({
            ctrlLightSwitch:"开",
            sty: 1,
            score: 'rgb(61, 194, 94)'
          });
        }else{
          console.log("关闭开关")
          LightSet.DeviceSwitchState = 1
          that.setData({
            ctrlLightSwitch:"关",
            sty: 0,
            score: 'rgb(193, 207, 198)'
          });
        }
      },
      fail :(err) => {
        API.ShowToast("服务器未连接", 2000, "error")
        console.log('request'+err)
      },
    })
   },

  // 因为请求数据的方法用promise封装，所以需要配合async 和 await 来获取到promise中的数据
  async _getCate(){ //在需要请求接口获取数据的方法中调用api中的方法
    console.log("在需要请求接口获取数据的方法中调用api中的方法");
    let result = await API._getTopCate();
    console.log(result)
  },

  /*
  **作者：田小呱
  **时间：2022.11
  **概述：亮度滑动条完成一次拖动后触发的事件，由前端界面的滑动条亮度设置部分触发。
  */
   Brightness: function (e) {
    let that = this;
    LightSet.Luminance = e.detail.value
    wx.request({
      url: API.myURL_setDevice_post, 
      method:'POST', // 请求方式POST
      data: {
        DataType: API.DATATYPE.type_Luminance,
        Topic   :API.Topic, //由用户设置的账号密码
        Payload : LightSet, //负载 要发送的具体数据内容
      },
      header: API.header,
      success (res) {
        console.log("数据内容："+ res.data.Luminance)
        that.setData({upLightValue:res.data.Luminance})   
      },
      fail :(err) => {
        API.ShowToast("服务器未连接", 2000, "error")
        console.log('request'+err)
      },
    })
    API.ShowToast("亮度滑动条触发" + e.detail.value, 600)
  },

 /*
  **作者：田小呱
  **时间：2022.11
  **概述：亮度滑动条完成一次拖动后触发的事件，由前端界面的滑动条色温设置部分触发。
  */
  ColorTemperature: function (e) {
   LightSet.Color = e.detail.value
   wx.request({
    url: API.myURL_setDevice_post, 
    method:'POST', // 请求方式POST
    data: {
      DataType: API.DATATYPE.type_Color,
      Topic   :API.Topic, //由用户设置的账号密码
      Payload : LightSet, //负载 要发送的具体数据内容
    },
    header: API.header,
    success (res) {
      console.log("数据内容："+ res.data.Color)
    },
    fail :(err) => {
      API.ShowToast("服务器未连接", 2000, "error")
      console.log('request'+err)
    },
  })
 },
});
